/*!  

	\file		SmsPlatDefs.h
	
	\brief		Platform dependent types and definitions
	
	\par		Copyright (c) 2005 Siano Mobile Silicon Ltd. All rights reserved	
																	   
				PROPRIETARY RIGHTS of Siano Mobile Silicon are involved in the 
				subject matter of this material.  All manufacturing, reproduction, 
				use, and sales rights pertaining to this subject matter are governed 
				by the license agreement.  The recipient of this software implicitly 
				accepts the terms of the license.	  
*/
#pragma once

#ifndef SMS_PLAT_DEFS_H
#define SMS_PLAT_DEFS_H

#include "stdafx.h"

#ifdef __cplusplus
extern "C"{
#endif

/*********************/
/* Platform Includes */
/*********************/

/***********/
/* Defines */
/***********/

#define ADR_SUPPORTED

#ifdef _DEBUG
	#define SMS_ASSERT(x)   ASSERT(x)
#else
	#define SMS_ASSERT(x)
#endif // DEBUG

#define ARGUSE(x) (x);

/**********/
/* Types */
/**********/


/**********************************/
/* Platform OSW types and defines */
/**********************************/

// Task type
typedef HANDLE		OSW_TaskId;

// Mutex type
typedef HANDLE		Mutex;

// File type
typedef FILE*		OSW_FILEHANDLE;

// Event type
typedef HANDLE		Event;

// Tasks priorities
#define OSW_SMSHOSTLIBTASK_PRI						THREAD_PRIORITY_NORMAL
#define OSW_SMSHOSTMONITORTASK_PRI					THREAD_PRIORITY_NORMAL
#define OSW_SMSHOSTLIB_ICALL_TASK_PRI				THREAD_PRIORITY_NORMAL
#define OSW_SMSHOSTLIBTASK_SCAN_PRI					THREAD_PRIORITY_NORMAL
#define OSW_SMSHOSTLIB_WAKEUP_TASK_PRI				THREAD_PRIORITY_NORMAL

// Tasks stack size
#define OSW_SMSHOSTLIBTASK_STACK					( 0x800 )
#define OSW_SMSHOSTMONITORTASK_STACK				( 0x800 )
#define OSW_SMSHOSTLIB_ICALL_TASK_STACK				( 0x800 )
#define OSW_SMSHOSTLIBTASK_SCAN_STACK				( 0x800 )
#define OSW_SMSHOSTLIB_WAKEUP_TASK_STACK			( 0x800 )

#define MAX_DIR_NAME_SIZE	256

// Global antenna functionality enable flag
// Antenna configuration is currently disabled since it is done in the windows driver
#define	SMS_USE_BOARD_CONFIG_FILE			// To be un-commented if the antenna functionality is desired
														
// GPIO definitions for antenna frequency domain control (SMS8021)
#define SMS_ANTENNA_GPIO_0							1
#define SMS_ANTENNA_GPIO_1							0


/**************/
/* Debug Logs */
/**************/
#ifdef SMSHOST_ENABLE_LOGS

#define SMSHOST_FILE		__FILE__
#define SMSHOST_LINE		__LINE__
#define SMSHOST_FUNCTION	__FUNCTION__

extern void SmsCELog(UINT32 mask,char* log_str);

#define USER_PRINTF(mask,log_str) \
	SmsCELog(mask,log_str)

#define SMSHOST_DEFAULT_LOG_MASK (0xFFFFFFFF)

#endif

#ifdef __cplusplus
}
#endif

#endif  /* SMS_PLAT_DEFS_H */
